package com.lei.dao;

import com.lei.entity.Staff;

import java.util.List;
import java.util.Map;

/**
 * @author Lei Chu
 * @Date 2020/10/16 18:09
 */
public interface StaffDao {

    /**
     * 功能描述:检测用户登录
     * @param staff User
     * @return com.lei.entity.User
     */
    Staff checkLogin(Staff staff);

    /**
     * 功能描述:获得所的员工，带查询条件
     * @param staff Staff
     * @return java.util.List<com.lei.entity.Staff>
     */
    List<Staff> getAllStaff(Staff staff);

    /**
     * 功能描述:获取用户的条数
     * @param staff Staff
     * @return java.lang.Long
     */
    int getCount(Staff staff);

    /**
     * 功能描述:获取最后一位员工编号
     * @return int
     */
    int getLastStaffId();

    /**
     * 功能描述:添加员工
     * @param staff Staff
     * @return int
     */
    int addStaff(Staff staff);

    /**
     * 功能描述:修改员工
     * @param staff Staff
     * @return int
     */
    int updateStaff(Staff staff);

    /**
     * 功能描述:修改员工密码
     * @param staff Staff
     * @return int 
     */
    int updatePassword(Staff staff);
    
    /**
     * 功能描述:通过ID删除用户
     * @param id Staff的唯一标识
     * @return int 
     */
    int deleteStaff(int id);

    /**
     * 功能描述:获取离职员工的数据
     * @param staff Staff
     * @return java.util.List<com.lei.entity.Staff>
     */
    List<Staff> getAllResignedStaff(Staff staff);

    /**
     * 功能描述:获取离职员工的总条数
     * @param staff Staff
     * @return int
     */
    int getResignedCount(Staff staff);

    /**
     * 功能描述:员工离职
     * @param id 员工 Id
     * @param resignedTime 离职时间
     * @return int
     */
    int staffResigned(String id, String resignedTime);

    /**
     * 功能描述:员工重新入职
     * @param id 员工Id
     * @param createdTime 入职时间
     * @return int
     */
    int staffCreated(String id, String createdTime);

    /**
     * 功能描述:通过Id找到当前登录人的所有信息
     * @param id Id
     * @return java.util.List<java.util.Map>
     */
    List<Map> getNowStaffById(Integer  id);

    /**
     * 功能描述:员工修改自己的手机号和地址
     * @param staff Staff
     * @return int
     */
    int updateStaffPhoneAndAdderss(Staff staff);

    /**
     * 功能描述:修改员工的头像
     * @param url 图片路径
     * @param id 员工Id
     * @return int
     */
    int updateUrl(String url, Integer id);
}
